<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>js的执行机制</title>
</head>
<body>
    <!-- 
        js执行机制：(事件循环机制)
            javascript语言做大的特点就是单线程，也就是说，同一时间只能做一件事
            为了解决这个问题，利用多核CPU的计算能力，允许javascript脚本创建多个线程，于是js中出现了同步和异步

        同步：
            同步任务都在主线程上执行，形成一个执行栈
        异步：（会阻塞）
            js的异步是通过回调函数实现的（他是耗时任务，哪怕是耗时0s)
            一般异步有三种类型:
                1、普通事件  click resize
                2、资源加载  load  error，网络请求（ajax)
                3、定时器   setInterval setTimeout等
            异步任务相关添加到任务队列中（任务队列也称为消息队列）

        执行顺序：
            1、先执行执行栈中的同步任务
            2、异步任务放入任务队列中
            3、执行栈中的同步任务执行完毕后，系统就会按次序读取任务中的异步任务，于是被读取的异步任务结束等待状态，进入执行栈，开始执行
     -->
</body>
</html>